package cn.com.winson.config;

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;

import cn.com.winson.interceptor.LoginInterceptor;

/**
 * 自定义的登录拦截器的配置类
 * 
 * @author lvhao
 * @date 2018年12月8日
 * @time 上午10:23:07
 */
/* @Configuration注解：相当于是一个spring的配置文件（applicationContext.xml） */
@Configuration
public class LoginInterceptorConfig extends WebMvcConfigurerAdapter {

	/* 重写addInterceptors方法：作用为添加一个拦截器，添加拦截器拦截规则 */
	@Override
	public void addInterceptors(InterceptorRegistry registry) {
		/*拦截和不拦截的路径参数都可以是数组*/
		String[] excludePathPatterns ={"/winson/login","/winson/logout"};
		registry.addInterceptor(new LoginInterceptor())
				/*表示对以winson开头的请求地址都进行拦截*/
				.addPathPatterns("/winson/**")
				/*表示对以winson开头，后面紧跟着的是login的请求地址，不进行拦截，exclude表示排除*/
				.excludePathPatterns(excludePathPatterns);
		
		/*拦截器可以同时存在好几个，如下，我们再写一个拦截*/
		String[] tomexcludePathPatterns ={"/tom/login","/tom/logout"};
		registry.addInterceptor(new LoginInterceptor())
		/*表示对以winson开头的请求地址都进行拦截*/
		.addPathPatterns("/tom/**")
		/*表示对以winson开头，后面紧跟着的是login的请求地址，不进行拦截，exclude表示排除*/
		.excludePathPatterns(tomexcludePathPatterns);
	}

}
